package com.info.zhiduoduo.wxsdk.domain.pay;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 微信支付,统一下单后的返回结果
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class WxUnifiedOrderResult {

	/**
	 返回状态码	是	String(16)	SUCCESS .SUCCESS/FAIL
	 <p>
	 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
	 */
	private String return_code;

	/**
	 返回信息
	 否 String(128)	签名失败
	 <p>
	 返回信息，如非空，
	 为错误原因
	 <p>
	 签名失败
	 <p>
	 参数格式校验错误
	 */
	private String return_msg;

//	------ 以下字段在return_code为SUCCESS的时候有返回 ---------//

	/**
	 公众账号ID
	 <p>
	 String(32)	wx8888888888888888 调用接口提交的公众账号ID
	 */
	private String appid;

	/**
	 商户号
	 <p>
	 是 String(32)	1900000109调用接口提交的商户号
	 */
	private String mch_id;

	/**
	 设备号
	 <p>
	 否 String(32)	013467007045764自定义参数，可以为请求支付的终端设备号等
	 */
	private String device_info;

	/**
	 随机字符串
	 <p>
	 是 String(32)	5
	 K8264ILTKCH16CQ2502SI8ZNMTM67VS 微信返回的随机字符串
	 */
	private String nonce_str;

	/**
	 签名
	 <p>
	 是 String(32)	C380BEC2BFD727A4B6845133519F3AD6 微信返回的签名值，详见签名算法
	 */
	private String sign;

	/**
	 业务结果
	 <p>
	 是 String(16)	SUCCESS SUCCESS/FAIL
	 */
	private String result_code;

	/**
	 错误代码
	 <p>
	 否 String(32)	SYSTEMERROR 详细参见下文错误列表
	 */
	private String err_code;

	/**
	 错误代码描述
	 <p>
	 否 String(128)	系统错误 错误信息描述
	 */
	private String err_code_des;

// ------  以下字段在return_code 和result_code都为SUCCESS的时候有返回 ------ //

	/**
	 交易类型
	 <p>
	 是 String(16)	JSAPI
	 <p>
	 JSAPI 公众号支付
	 <p>
	 NATIVE 扫码支付
	 <p>
	 APP APP支付
	 <p>
	 说明详见参数规定
	 */
	private String trade_type;

	/**
	 预支付交易会话标识
	 <p>
	 是 String(64)	wx201410272009395522657a690389285100 微信生成的预支付会话标识，用于后续接口调用中使用，该值有效期为2小时
	 */
	private String prepay_id;

	/**
	 二维码链接
	 */
	private String code_url;

}
